/**
 * 尝试 移除 类
 * @param elt 目标元素
 * @param class_str 带添加类 单个 或 集
 * @param is_add  true 添加
 */
export function remove_class(
  elt: HTMLElement,
  class_str: string | string[],
  is_add: boolean = false
) {
  if (typeof class_str == 'string') {
    class_str = [class_str];
  }

  for (const cur_class_str of class_str) {
    if (is_add) {
      add_cla(elt, cur_class_str);
    } else {
      remove_cla(elt, cur_class_str);
    }
  }
}

/**
 * 添加 类
 * @param elt
 * @param cla_str
 */
function add_cla(elt: HTMLElement, cla_str: string) {
  elt.classList.contains(cla_str) ? undefined : elt.classList.add(cla_str);
}

/**
 * 移除 类
 * @param elt
 * @param cla_str
 */
function remove_cla(elt: HTMLElement, cla_str: string) {
  elt.classList.contains(cla_str) ? elt.classList.remove(cla_str) : undefined;
}
